<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // instanceof作用:判断一个实例是否是其父类或者祖先类型的实例。
        // instanceof 在查找的过程中会遍历左边变量的原型链，直到找到右边变量的 prototype查找失败，返回 false
        // 语法:object instanceof constructor
        // object: 要检测的对象
        // constructor: 假定的构造函数
        // 返回值: 如果object是constructor的实例，则返回true，否则返回false
        // 实现原理: 检查构造函数的prototype属性是否出现在某个实例对象的原型链上
        function myInstanceof(left, right) {
            while(left){
                if(left.__proto__ === right.prototype){
                    return true
                }else{
                    left = left.__proto__
                }
            }
            return false
        }
        let a=[1,2,3]
        console.log(myInstanceof(a,Array))
        console.log(myInstanceof(a,Object))
    </script>
</body>
</html>